package com.clkj.aimin.service.doctor;

import cn.hutool.db.sql.Order;
import com.clkj.aimin.pojo.doctor.Chat;
import com.clkj.aimin.pojo.doctor.Department;
import com.clkj.aimin.pojo.doctor.Doctor;
import com.clkj.aimin.pojo.doctor.DoctorTalk;
import com.clkj.aimin.pojo.topic.Topic;
import com.clkj.aimin.pojo.topic.TopicComments;
import com.clkj.aimin.pojo.user.Task;
import com.clkj.aimin.pojo.user.User;
import com.clkj.aimin.pojo.user.UserOrder;
import com.clkj.aimin.pojo.user.UserRegister;
import com.github.pagehelper.PageInfo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @author yawang
 * @create 2024/04/02 16:47:15
 **/
public interface DoctorService {

    void addDoctor(Doctor doctor, HttpServletRequest request);

    Doctor getDoctorByOpenId(String openId);

    Doctor getDoctorById(Integer doctorId);

    void addDepartment(Department department);


    List<Department> listDepartment();

    Map getMain(Integer userType,Integer userId);

    Map getTopicCommonts(Integer topicId,Integer  userId);

    List<DoctorTalk> getDoctorTalk(Integer doctorId);

    List<User> listDoctors();

    void addComments(TopicComments comments);

    Map listDoctorTimes(Integer doctorId,Integer weekNum,String dateTime,Integer userId);

    void addDoctorTimes(Integer doctorId,String  weekNum,Integer  settingNum,String timeSlot,Integer flag);

    void addUserRegister(Integer doctorId,Integer weekNum,Integer userId,String timeSlot,String registerDate,Integer departmentId );

    List<Doctor> listDoctorByDepart(Integer departmentId);

    List<UserRegister> listUserRegister(Integer userId);

    List<Doctor> listAllDoctorTimers();

    void cancelUserRegister(Integer registerId);

    void addDoctorTalk(Integer doctorId,Integer userId,String talkDetail,Integer parentId,Integer userType);

    Map updateUserType(Integer userId,String code,Integer flag,Integer doctorId);

    Map updateDoctor(Doctor doctor,HttpServletRequest request);

    List<User> listUsersByDoctor(Integer userId,Integer userType,String userName);

    List<UserRegister> listUserRegisterByDoctor(Integer doctorId);

    Map listDoctorMain(Integer doctorId);

    List<Topic> listMoreTopic(Integer doctorId,Integer topicType);

    String listErweima(Integer doctorId);


    List<Task> taskList();

    void updateTask(Task task);

    void bandingHelper(Integer doctorId, Integer helperId);

    List<User> listHelper();

    void addArticleOrVideo(Topic topic, HttpServletRequest request);

    void ArticleTop(String ids, Integer zhiding, Integer orderNum, Integer topicStatus);

    void  addPrise(Integer userId,Integer topicId,Integer flag);

    PageInfo listAllDoctors(Integer page,Integer size,String userName);

    void updateDoctorStatus(String ids,Integer status);

    Map backLogin(String managerAccount,String managerPass);

    Map senMessage(Integer userId,Integer doctorId,String message);

    List<UserOrder> listCurrApply(Integer doctorId);

    Topic topicDetail(Integer topicId);


}
